package cn.zouchanglin.spider_xpu;

import cn.zouchanglin.spider_xpu.entity.Course;
import cn.zouchanglin.spider_xpu.entity.Student;
import lombok.Data;

import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 爬取结果通用对象（同步调用结果 + 异步缓存结果）
 * 学生信息 + 当前学年课表 是同步调用的时候就已经拿到了
 * 所有课表 是异步任务执行完毕后才缓存的
 * @author zouchanglin
 */
@Data
public class SpiderResult {
    /**
     * 用户唯一标识
     */
    private String key;

    /**
     * 学生信息
     */
    private Student student;

    /**
     * 可选择的学年
     */
    private String[] years;

    /**
     * 当前学年课表
     */
    private List<Course> course;

    /**
     * 所有学年的课表
     * Key: 学年 学期 eg: 2020-2021 2
     */
    private ConcurrentHashMap<String, List<Course>> courses;

    @Override
    public String toString() {
        StringBuilder buffer = new StringBuilder();
        buffer.append(key).append(" ").append(student).append(Arrays.toString(years)).append(course).append("\n");
        if(courses != null){
            ConcurrentHashMap.KeySetView<String, List<Course>> keySet = courses.keySet();
            for(String s: keySet){
                buffer.append("====================").append(s).append("=====================\n");
                List<Course> courses = this.courses.get(s);
                for(Course c: courses){
                    buffer.append(c.toString()).append("\n");
                }
            }
        }
        return buffer.toString();
    }
}
